Skip to content

优先队列

C++中的优先队列只考虑优先级最高的元素。队列遵循 FIFO 策略,优先队列根据优先级弹出元素,即优先级最高的元素先弹出。

它在某些方面与普通队列相似,但在以下方面有所不同:

  • 在优先级队列中,队列中的每个元素都与某个优先级相关联,但队列数据结构中不存在优先级。
  • 优先级队列中优先级最高的元素将首先被删除,而队列遵循先进先出(FIFO, first - in - first - out)策略意味着先插入的元素将首先被删除。
  • 如果存在多个具有相同优先级的元素,则将考虑队列中元素的顺序。

Priority Queue in C++

方法描述
push()插入元素,保证优先级不变
pop()移除优先级最高的元素
top()返回顶部元素
size()返回队列大小
empty()检查是否为空
优先队列 示例代码
cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
    priority_queue<int> p;
    p.push(10);
    p.push(30);
    p.push(20);
    while(!p.empty())
    {
        cout << p.top() << std::endl;
        p.pop();
    }
}